<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');



class professor extends CI_Controller {
	
	public function __construct(){
		parent::__construct();
	}
	
	public function exlcuir($id){
		$this->load->model("loginmodel", "login");
		$saida = array();
		$saida['error'] = -1;
		$saida['msg'] = "Erro desconhecido";
		if($this->login->testaLogado("admin")){
			if(is_numeric($id)){
				$this->load->model("dao/ProfessorDAO", "pDAO");
				$ret = $this->pDAO->excluir($id);
				if($ret){
					$saida['error'] = 0;
					$saida['msg'] = "Excluido com sucesso";
				} else {
					$saisa['error'] = -3;
					$saida['msg'] = "Erro ao excluir";
				}
			} else {
				$saida['error'] = -2;
				$saida['msg'] = "Id Inválido";
			}
		}
		else {
			$this->login->redirecionar("admin");
		}
		header("Content-type: application/json");
		echo json_encode($saida);
	}
	
	public function lancarNota(){
		$this->load->model("loginmodel", "login");
		$saida = array();
		if($this->login->testaLogado("professor")){
			if(isset($_POST['listaAluno']) && $_POST['listaAluno'] != "" && isset($_POST['idMateria']) && $_POST['idMateria'] != ""){
				$listaAluno = $_POST['listaAluno'];
				$this->load->model("dao/ProfessorDAO", "pDAO");
				$flag = true;
				$flagFalta = true;
				$idMateria = (int) $_POST['idMateria'];
				foreach($listaAluno as $a){
					if($a['nota'] == "NaN"){
						continue;
					}
					$idNota = (int)$a['idNota'];					
					$idAluno = (int)$a['idAluno'];
					$bimestre = (int)$a['intBimestre'];
					$tipoNota = $a['tipoNota'];
					$nota = (float) $a['nota'];
					$ordemNota = (int)$a['intOrdem'];
					//echo $idNota ." ". $idMateria ." ". $idAluno . " " . $bimestre . " " . $tipoNota . " " . $nota . " " . $ordemNota;
					$r = $this->pDAO->lancarNota($idNota, $idMateria, $idAluno, $bimestre, $tipoNota, $nota, $ordemNota);
					//echo " " . $tipoNota . "<br>";
					//echo var_dump($r);
					if(!$r){
						$flag = false;
						break;
					}
				}
				//exit();
				if(isset($_POST['faltas']) && $_POST['faltas'] != ""){
					$faltas = $_POST['faltas'];
					foreach($faltas as $f){
						$idAluno = (int)$f['idAluno'];
						$bimestre = (int)$f['bimestre'];
						$qtd = (int)$f['qtd'];
						$idFalta = (int) $f['idFalta'];
						$r = $this->pDAO->lancarFalta($idFalta, $idAluno, $bimestre, $qtd, $idMateria);
						
						if(!$r){
							$flagFalta = false;
							break;
						}
					}
				}
				
				if(!$flag){
					$saida['error'] = -2;
					$saida['msg'] = "Erro ao lançar a nota";
				} else {
					if(!$flagFalta){
						$saida['error'] = -3;
						$saida['msg'] = "Erro ao lançar as faltas";
					} else {
						$saida['error'] = 0;
						$saida['msg'] = "Lançado com sucesso";
					}
				}
				//echo var_dump($listaAluno);
				//exit();
			} else {
				$saida['error'] = -1;
				$saida['msg'] = "Houve um erro, sem dados de alunos e ou matéria";
			}
		} else {
			$this->login->redirecionar("professor");
		}
		
		
		header("Content-type: application/json");
		echo json_encode($saida);
	}
	
	public function index(){
		$this->load->model("loginmodel", "login");
		if($this->login->testaLogado("professor")){
			$this->load->model("dao/MateriaDAO", "mDAO");
			$idProfessor = $this->login->idLogado();
			$listaM = $this->mDAO->getMateriasProfessor($idProfessor);
			$nomeProfessor = $this->login->getNomeProfessor();
			$data = array(
				"listaMateria" => $listaM,
				"nomeProfessor" => $nomeProfessor
				);
			$this->load->view("principalprofessor", $data);
		} else {
			$this->login->redirecionar("professor");
		}
	}
	
	public function getProfessorMateria($id){
		$this->load->model("loginmodel", "login");
		$saida = array();
		if($this->login->testaLogado("admin")){
			$this->load->model("dao/ProfessorDAO", "pDAO");
			$pMateria = $this->pDAO->getProfessorMateria($id);
			if($pMateria){
				$saida['error'] = 0;
				$professor = array();
				$professor['nome'] = $pMateria['professor']->getNome();
				$professor['id'] = $pMateria['professor']->getIdProfessor();
				if(isset($pMateria['listaMateria']) && $pMateria['listaMateria'] != null && count($pMateria['listaMateria']) > 0){
					$listaMateria = array();
					
					foreach($pMateria['listaMateria'] as $m){
						$materia = array();
						$materia['id'] = $m->getIdMateria();
						$materia['materia'] = $m->getMateria();
						$materia['idturma'] = $m->getIdTurma();
						array_push($listaMateria, $materia);	
					}
					$saida['listamateria'] = $listaMateria;
				} else {
					$saida['listamateria'] = -1;
					$saida['msg'] = "Sem matérias";
				}
				$saida['professor'] = $professor;
				
			}
			else {
				$saida['error'] = -1;
				$saida['msg'] = "Não foi encontrado nada";
			}
		}
		else {
			$this->login->redirecionar("admin");
		}
		header("Content-type: application/json");
		echo json_encode($saida);
	}
	
	public function cadastrar(){
		$this->load->model("loginmodel", "login");
		if($this->login->testaLogado("admin")){
			$this->load->view("cadastroprofessor");
		}
		else {
			$this->login->redirecionar("admin");
		}
	}
	
	public function getProfessor($id){
		$this->load->model("loginmodel", "login");
		if($this->login->testaLogado("admin")){
			if(is_numeric($id)){
				$this->load->model("dao/ProfessorDAO", "pDAO");
				$professor = $this->pDAO->getProfessor($id);
				$data = array(
					"professor" => $professor);
			} else {				
				$data = array(
					"erro" => "Erro, id não numérico");
			}	
			$this->load->view("cadastroprofessor", $data);
		}
		else {
			$this->login->redirecionar("admin");
		}
	}
	
	public function editarProfessor(){
		$this->load->model("loginmodel", "login");
		if($this->login->testaLogado("professor")){
			$id = $this->login->idLogado();
			$this->load->model("dao/ProfessorDAO", "pDAO");
			$professor = $this->pDAO->getProfessor($id);
			$data = array(
					"professor" => $professor);
			
			$this->load->view("cadastroprofessor", $data);
		}
		else {
			$this->login->redirecionar("professor");
		}
	}
	
	public function inserirEditarProfessorProfessor(){
		$this->load->model("loginmodel", "login");
		$saida = array();
		if($this->login->testaLogado("professor")){
			if(isset($_POST['nome']) && $_POST['nome'] != "" && isset($_POST['login']) && $_POST['login'] != ""){
				$nome = $_POST['nome'];
				$login = $_POST['login'];
				$senha = "";
				$email = "";
				$flag = false;
				$id = $this->login->idLogado();
				if($_POST['email'] == ""){
					$email = "";
				} else {
					$email = $_POST['email'];
				}
				if((int)$id == 0){
					if($_POST['senha'] != ""){
						$senha = md5($_POST['senha']);
						$flag = true;
					} else {
						$saida['error'] = -9; // Para novo senha é obrigatório
						$saida['msg'] = "Preencha a senha";
						$flag = false;
					}
				} else {
					$flag = true;
					if($_POST['senha'] != ""){
						$senha = md5($_POST['senha']);
					}
				}
				if($flag){
					$this->load->model("dao/ProfessorDAO", "pDAO");
					$retorno = $this->pDAO->inserirEditar($id, $nome, $login, $senha, $email);
						
					$saida['error'] = $retorno;
						
					if($retorno == -1){
						$saida['msg'] = "Login já existe";
					}
					elseif($retorno > 0){
						$saida['msg'] = "Inserido com sucesso";
						$this->login->mudarNome("professor", $nome);
					}
					elseif($retorno == 0){
						$saida['msg'] = "Editado com sucesso sem senha";
						$this->login->mudarNome("professor", $nome);
					}
					elseif($retorno == -2){
						$saida['msg'] = "Editado com sucesso com senha";
						$this->login->mudarNome("professor", $nome);
					}
						
					else {
						$saida['msg'] = "Erro desconhecido";
					}
				}
	
			} else {
				$saida['error'] = -1;
				$saida['msg'] = "Campos obrigatórios ficaram em branco";
			}
		}
		else {
			$this->login->redirecionar("admin");
		}
		echo json_encode($saida);
	}
	
	public function inserirEditarProfessor($id){
		$this->load->model("loginmodel", "login");
		$saida = array();
		if($this->login->testaLogado("admin")){
			if(isset($_POST['nome']) && $_POST['nome'] != "" && isset($_POST['login']) && $_POST['login'] != ""){
				$nome = $_POST['nome'];
				$login = $_POST['login'];
				$senha = "";
				$email = "";
				$flag = false;
				if($_POST['email'] == ""){
					$email = "";
				} else {
					$email = $_POST['email'];
				}
				if((int)$id == 0){
					if($_POST['senha'] != ""){
						$senha = md5($_POST['senha']);
						$flag = true;
					} else {
						$saida['error'] = -9; // Para novo senha é obrigatório
						$saida['msg'] = "Preencha a senha";
						$flag = false;
					}
				} else {
					$flag = true;
					if($_POST['senha'] != ""){
						$senha = md5($_POST['senha']);
					}
				}
				if($flag){
					$this->load->model("dao/ProfessorDAO", "pDAO");
					$retorno = $this->pDAO->inserirEditar($id, $nome, $login, $senha, $email);
					
					$saida['error'] = $retorno;
					
					if($retorno == -1){
						$saida['msg'] = "Login já existe";
					}
					elseif($retorno > 0){
						$saida['msg'] = "Inserido com sucesso";
					}
					elseif($retorno == 0){
						$saida['msg'] = "Editado com sucesso sem senha";
					}
					elseif($retorno == -2){
						$saida['msg'] = "Editado com sucesso com senha";
					}
					
					else {
						$saida['msg'] = "Erro desconhecido";
					}			
				}
				
			} else {
				$saida['error'] = -1;
				$saida['msg'] = "Campos obrigatórios ficaram em branco";
			}
		}
		else {
			$this->login->redirecionar("professor");
		}
		echo json_encode($saida);
	}
	
	
	
}
